1-1 Perl 簡

Perl 語言在 Web 程式設計的發展過程中,佔有舉足輕重的地位,尤其是在 ASP、PHP 尚未興起之前,所有使用者與伺服器的溝通,完全是靠 CGI(Common Gateway Interface)來達成,而這些 CGI 背後的程式語言,至少有一半以上是靠 Perl 來完成使命的。

Perl 是一種底稿式語言(Scripting Language),因此和一般其他底稿式語言(如 MATLAB、JavaScript、VB、Tk\Tcl、Unix Shell)的特色類似,具有下列特色:

Perl 是由 Larry Hall 所精心發展出來的語言,其原名是「Practical Extraction and Report Language」,由此可見 Perl 原先的主要功能就是對文字進行各式各樣的處理,並產生所需的報表。Perl 由於對文字處理的功能非常強大,因此所產生的程式碼非常精簡,對於 Perl 程式老手來說,Perl 程式就如同 Pearl (珍珠)一般,字字珠璣,一行程式碼可抵數十行(甚至數百行)的 C 程式碼。但對初學者來說,這些老手所寫出來的程式,雖然短短數行,但可能就像天書一樣,完全不知所云,因此有人又戲稱 Perl 是「Pathologically Eclectic Rubbish Lister」。舉例來說,下面是一行典型的 Perl 程式碼:
$html=~m#<\s*a\s+href\s*=\s*"?(.*?)"?\s*>(.*?)<\s*/\s*a\s*>#gi;

看起來是不是很像使用 Modem 撥接上網時,偶而會出現的一堆亂碼?(上述程式碼的功能是從一段 HTML 文字中找出可連結的網址,會在本章後面幾節詳述。)

Perl 之所以受到歡迎,可以歸納出下列原因:

  1. 軟體完全免費。
  2. 可用於不同作業平台,如 Unix、Win95/98/NT/2000、Mac。
  3. 強大的文字處理能力,特別適用於處理網頁資料。
  4. 在 Unix 社區中已被廣泛使用良久,因此到處可以找到免費好用的程式碼。
所有有關 Perl 的相關資訊(含在各種作業平台的可執行檔及原始碼),都可在 CPAN(Comprehensive Perl Archive Network)網址獲得:
http://www.perl.com/CPAN/
此網址也包含了各式各樣的模組(Module),可用來延伸基本 Perl 的功能。在 CPAN 的 Perl,通稱為「標準版本」(Standard Distribution),包含了對各種作業平台的支援。另外,微軟也看到了 Perl 的魅力,因此委託 ActiveState 公司開發在 Win32 的專用 Perl,並附在 NT Resource Kit。由 ActiveState 公司所開發的 Perl 也是完全免費,可由下列網址獲得:
http://www.activestate.com
此 Perl 版本通稱「Win32 版本」(Perl for Win32),它的功能和「標準版本」是大同小異,但由於「Win32 版本」是由微軟支援開發,所以和微軟視窗系統的配合度較高,因此具有其他特異功能,例如 OLE Automation(和其他視窗應用軟體溝通)、ActiveX Scripting(取代 JavaScript 和 VBScript 在 Web 瀏覽器及伺服器的功能) 等等。

Perl 原先只是所謂的「Glue Language」,用來處理零零總總的小事情,但現在已不可同日而語,其應用面可列出如下:


Perl